package br.com.medvagas.comum.entidade;

import java.io.Serializable;
import javax.persistence.*;

import br.com.medvagas.comum.enumeracao.vaga.DiaSemanaEnum;
import br.com.medvagas.comum.enumeracao.vaga.UnidadeValorEnum;
import br.com.medvagas.comum.util.UtilData;
import br.com.medvagas.comum.util.UtilEnum;

import java.util.Date;


/**
 * The persistent class for the horario_valor_plantao database table.
 * 
 */
@Entity
@Table(name="horario_valor_plantao")
public class HorarioValorPlantao implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="id_horario_valor")
	private Integer idHorarioValor;

    @Temporal(TemporalType.DATE)
	@Column(name="data_especifica")
	private Date dataEspecifica;

	private Integer dia;

	@Column(name="hora_fim")
	private String horaFim;

	@Column(name="hora_inicio")
	private String horaInicio;

	private Boolean liquido;

	@Column(name="unidade_valor")
	private String unidadeValor;

	@Column(name="valor_por_hora")
	private Double valorPorHora;

	@Column(name="valor_por_plantao")
	private Double valorPorPlantao;

	//bi-directional many-to-one association to RemuneracaoPlantao
	@ManyToOne(fetch=FetchType.LAZY)
//	@JoinColumn(name="id_remuneracao", insertable=false, updatable=false)
	@JoinColumn(name="id_remuneracao")
	private RemuneracaoPlantao remuneracaoPlantao;
//	@Column(name="id_remuneracao")
//	private Integer idRemuneracao;

    public HorarioValorPlantao() {
    }

	public String getDiaFormatado() {
		if (dia != null) {
			return UtilEnum.recuperarLabel(DiaSemanaEnum.values(), this.dia.toString());
		} else { 
			return "";
		}
	}
	public String getDataFormatado() {
		return UtilData.dataToString(this.dataEspecifica);
	}
    
	public String getUnidadeValorFormatado() {
		if (unidadeValor != null) {
			return UtilEnum.recuperarLabel(UnidadeValorEnum.values(), this.unidadeValor);
		} else {
			return "";
		}
	}
	
	public Integer getIdHorarioValor() {
		return this.idHorarioValor;
	}

	public void setIdHorarioValor(Integer idHorarioValor) {
		this.idHorarioValor = idHorarioValor;
	}

	public Date getDataEspecifica() {
		return this.dataEspecifica;
	}

	public void setDataEspecifica(Date data) {
		this.dataEspecifica = data;
	}

	public Integer getDia() {
		return this.dia;
	}

	public void setDia(Integer dia) {
		this.dia = dia;
	}

	public String getHoraFim() {
		return this.horaFim;
	}

	public void setHoraFim(String horaFim) {
		this.horaFim = horaFim;
	}

	public String getHoraInicio() {
		return this.horaInicio;
	}

	public void setHoraInicio(String horaInicio) {
		this.horaInicio = horaInicio;
	}

	public Boolean getLiquido() {
		return this.liquido;
	}

	public void setLiquido(Boolean liquido) {
		this.liquido = liquido;
	}

	public String getUnidadeValor() {
		return this.unidadeValor;
	}

	public void setUnidadeValor(String unidadeValor) {
		this.unidadeValor = unidadeValor;
	}

	public Double getValorPorHora() {
		return this.valorPorHora;
	}

	public void setValorPorHora(Double valorPorHora) {
		this.valorPorHora = valorPorHora;
	}

	public Double getValorPorPlantao() {
		return this.valorPorPlantao;
	}

	public void setValorPorPlantao(Double valorPorPlantao) {
		this.valorPorPlantao = valorPorPlantao;
	}

	public RemuneracaoPlantao getRemuneracaoPlantao() {
		return this.remuneracaoPlantao;
	}

	public void setRemuneracaoPlantao(RemuneracaoPlantao remuneracaoPlantao) {
		this.remuneracaoPlantao = remuneracaoPlantao;
	}

//	public Integer getIdRemuneracao() {
//		return idRemuneracao;
//	}
//
//	public void setIdRemuneracao(Integer idRemuneracao) {
//		this.idRemuneracao = idRemuneracao;
//	}
	
}